import CryptoJS from 'crypto-js';

export const DES_KEY_LEN = 24

/**
 * DES 加密
 *
 * @param data 明文
 * @param key 密钥 24 位
 * @returns {string} 密文
 */
export function encryptByDes(data, key) {
    console.log(data)
    console.log(key.substring(0, 8))
    if (data === null || data === undefined || data.length <= 0) return ''
    const encryptText = CryptoJS.TripleDES.encrypt(
        // 需要加密的数据
        data,
        // 密钥 24 位
        CryptoJS.enc.Utf8.parse(key),
        {
            // 偏移 8 位
            iv: CryptoJS.enc.Utf8.parse(key.substring(0, 8)),
            mode: CryptoJS.mode.CBC,
            padding: CryptoJS.pad.Pkcs7
        }
    )
    return encryptText.toString()
}

/**
 * DES 解密
 *
 * @param data 密文
 * @param key 密钥 24 位
 * @returns {string} 明文
 */
export function decryptByDes(data, key) {
    if (data === null || data === undefined || data.length <= 0) return ''
    const decryptText = CryptoJS.TripleDES.decrypt(
        // 需要解密的数据
        data,
        // 密钥 24 位
        CryptoJS.enc.Utf8.parse(key),
        {
            // 偏移 8 位
            iv: CryptoJS.enc.Utf8.parse(key.substring(0, 8)),
            mode: CryptoJS.mode.CBC,
            padding: CryptoJS.pad.Pkcs7
        }
    )
    return CryptoJS.enc.Utf8.stringify(decryptText).toString()
}